Various example embodiments relate in general to the field of computerized methods and systems for prefetching data, and more particularly to methods that rely on cognitive algorithms to learn sequences of relative memory addresses.
Data prefetching is an approach to reducing the latency of memory operations in computerized systems. Data prefetching can improve the performance of modern microprocessors, by proactively fetching useful data blocks from long-latency memory to faster cache memory, ahead of access requests. Prefetching techniques have also been applied to data storage systems.
Ideally, a prefetching algorithm should predict future access requests with high accuracy. Prefetching techniques are known, which predict future accesses based on past memory accesses, e.g., based upon learning of past access requests. Such techniques are inherently limited by the number of previously monitored access patterns. Several prefetching methods are otherwise known, which are limited to regular memory access patterns of consecutive memory addresses or of addresses at constant distance in memory. Such methods have limited applications.